Technical Field
The embodiments herein generally relate to data processing and, more particularly, to a system and method for automatically generating device driver codes in run time environments, specifically for design and verification of a device model.
Description of the Related Art
A device driver code generally refers to a software code (group of software instructions), that enables a software module to interface with a hardware device (e.g., a printer, a modem, a network controller card, and the like.). The device driver provides appropriate interfaces enabling various software modules (e.g., user applications, operating system components, and the like) executing in the computing device (or hardware components in the computing device) to communicate with and/or to control a hardware device.
A runtime specification captures various aspects of the runtime environment like a processor on which the device driver code may execute the operating system etc. Thus the methodology implicitly assumes the following scenario in which the driver needs to be executed. The following scenarios are (a) the present of the device model in a hardware form (i.e. a physical form), (b) a processor which executes the device driver code, (c) generation of the device driver code may be generated according to the characteristics of the operating environment captured in the runtime specification. But these methodologies do not cover the fact that a device driver code may be required even before the device is available in its physical hardware form and requisition of the device driver code. An implementation of the device model is written in a RTL even before the device model is available in its physical form. The RTL file is typically a text file which describes or characterizes the hardware and its behavior. Based on the RTL file, it is fabricated into its physical form of a peripheral (e.g. a USB controller). The RTL files need to be checked for finding the mistakes. However the device model may not be in a physical form in a verification environment. The device driver code may be required during the design and verification of the device model. There is no USB controller or hardware as such available, but there is a verilog file instead which can simulate the hardware and allow the user to interact with it by sending signals to it.
Also, the device driver code is different for different computing devices generally due to differences in hardware and software characteristics among computing devices. For example, different operating systems (or its absence) may require different software codes for operation as a device driver in the corresponding computing devices. Similarly, having different hardware (devices, registers, etc.) characteristics may also require different software codes.
According there remains a need for a system and method for generating a device driver code codes in run time environments, specifically for design and verification of a device model and even before the device model is available in its physical form.